package cn.com.hhrcw.enterprise.vo;

import cn.com.hhrcw.conferenceRoom.vo.ConferenceRoomVO;
import cn.com.hhrcw.conferenceRoomBatch.vo.ConferenceRoomBatchVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description: 职位-面试
 * @Author: jiangdong
 * @Date: 2020-11-04
 * @Version: V1.0
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "op_interview_history响应结果", description = "职位-面试")
public class OpInterviewHistoryVO implements Serializable {

    /**
     * 批次信息
     */
    private ConferenceRoomBatchVO conferenceRoomBatchVO;
    /**
     * 会议室信息
     */
    private ConferenceRoomVO conferenceRoomVO;
    /**
     *
     */
    private String id;


    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    @Excel(name = "创建人")
    private String createBy;


    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    @Excel(name = "更新人")
    private String updateBy;


    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "更新时间", format = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /**
     * 删除标识
     */
    @ApiModelProperty(value = "删除标识")
    private Boolean delFlag;


    /**
     * 所属部门
     */
    @ApiModelProperty(value = "所属部门")
    @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
    @Excel(name = "所属部门", dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
    private String sysOrgCode;


    /**
     *
     */
    private String r1;


    /**
     *
     */
    private String r2;


    /**
     *
     */
    private String r3;


    /**
     *
     */
    private String r4;


    /**
     *
     */
    private String r5;


    /**
     *
     */
    private String r6;


    /**
     *
     */
    private String r7;


    /**
     *
     */
    private String r8;


    /**
     *
     */
    private String r9;


    /**
     *
     */
    private String r10;


    /**
     * 投递人id
     */
    @ApiModelProperty(value = "投递人id")
    @Excel(name = "投递人id")
    private String userId;


    /**
     * 职位id
     */
    @ApiModelProperty(value = "职位id")
    @Excel(name = "职位id")
    private String jobId;


    /**
     * 0 现场面试 1视频面试
     */
    @ApiModelProperty(value = "0 现场面试 1视频面试")
    @Excel(name = "0")
    private Integer type;


    /**
     * 0 待处理 1 接受 2拒绝
     */
    @ApiModelProperty(value = "0 待处理 1 接受 2拒绝")
    @Excel(name = "0")
    private Integer outLineState;


    /**
     * 面试时间
     */
    @ApiModelProperty(value = "面试时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "面试时间", format = "yyyy-MM-dd")
    private Date time;


    /**
     * 0 未开始 1已结束
     */
    @ApiModelProperty(value = "0 未开始 1已结束")
    @Excel(name = "0")
    private Integer onLineState;


    /**
     * 说明
     */
    @ApiModelProperty(value = "说明")
    @Excel(name = "说明")
    private String des;


    /**
     * 面试地点lng
     */
    @ApiModelProperty(value = "面试地点lng")
    @Excel(name = "面试地点lng")
    private BigDecimal lng;


    /**
     * 面试地点lat
     */
    @ApiModelProperty(value = "面试地点lat")
    @Excel(name = "面试地点lat")
    private BigDecimal lat;


    /**
     * 面试地点
     */
    @ApiModelProperty(value = "面试地点")
    @Excel(name = "面试地点")
    private String location;


    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注")
    private String remark;


    /**
     *
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "结束时间", format = "yyyy-MM-dd HH:mm:ss")
    private Date interviewEndTime;


    /**
     * 简历id
     */
    @ApiModelProperty(value = "简历id")
    @Excel(name = "简历id")
    private String resumeId;


    /**
     * 公司id
     */
    @ApiModelProperty(value = "公司id")
    @Excel(name = "公司id")
    private String companyId;


    /**
     *
     */
    private Boolean emailFlag;


    /**
     *
     */
    private String emailMessageId;


    /**
     *
     */
    private Boolean messageFlag;


    /**
     *
     */
    private String messageId;


    /**
     * 抄送标识
     */
    @ApiModelProperty(value = "抄送标识")
    @Dict(dicCode = "boolean")
    @Excel(name = "抄送标识", dicCode = "boolean")
    private Boolean ccFlag;


    /**
     * 视频面试地址
     */
    @ApiModelProperty(value = "视频面试地址")
    @Excel(name = "视频面试地址")
    private String internetUrl;


    /**
     * 面试结果  0通过 1没通过
     */
    @ApiModelProperty(value = "面试结果  0通过 1没通过")
    @Excel(name = "面试结果")
    private Integer viewResult;


    /**
     * 面试结果时间
     */
    @ApiModelProperty(value = "面试结果时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "面试结果时间", format = "yyyy-MM-dd")
    private Date resultTime;


    /**
     * 面试结果处理人id
     */
    @ApiModelProperty(value = "面试结果处理人id")
    @Excel(name = "面试结果处理人id")
    private String resultUserId;

    /**
     * 面试结果备注
     */
    private String resRemark;

    /**
     * 联系人id
     */
    private String contactId;

    /**
     * 应聘者信息
     */
    private PiInfoVO userInfo;

    /**
     * 职位信息
     */
    private OpJobVO job;

    /**
     * 联系人信息
     */
    private EnContactsVO contact;

    /**
     * 企业相关信息
     */
    private EnInfoVO enInfo;

    /**
     * 投递记录id
     */
    private String delId;

    /**
     * 状态0未开始1已面试待反馈2面试通过3面试未通过
     */
    private Integer state;

    /**
     * 面试官
     */
    private List<PiInfoVO> conInfo;

    /**
     * 面试时间是已过 true 是 false 否
     */
    private Boolean timeFlag;

    /**
     * 接收/拒绝面试时间
     */
    private Date doTime;

    private Integer reState;

    private CvResumeVO resumeVO;

    /**
     * 会议室id
     */
    private String roomId;
    /**
     * 批次id
     */
    private String batchId;
    /**
     * 面试编号
     */
    private String interviewNo;
}
